Skip to content

Algorithm design and problem-solving

Algorithms

Candidates should be able to:

  1. Understand the program development life cycle, limited to: analysis, design, coding and testing

Note and guidance

  • Including identifying each stage and performing these tasks for each stage:
    • analysis: abstraction, decomposition of the problem, identification of the problem and requirements
    • design: decomposition, structure diagrams, flowcharts, pseudocode
    • coding: writing program code and iterative testing
    • testing: testing program code with the use of test data
    • Understand that every computer system is made up of sub-systems, which are made up of further sub-systems
    • Understand how a problem can be decomposed into its component parts
    • Use different methods to design and construct a solution to a problem

Note and guidance

  • Including:
    • inputs
    • processes
    • outputs
    • storage
  • Including:
    • structure diagrams
    • flowcharts
    • pseudocode
  1. Explain the purpose of a given algorithm

Note and guidance

  • Including:
    • stating the purpose of an algorithm
    • describing the processes involved in an algorithm
  1. Understand standard methods of solution

Note and guidance

  • Limited to:
    • linear search
    • bubble sort
    • totalling
    • counting
    • finding maximum, minimum and average values
    • Understand the need for validation checks to be made on input data and the different types of validation check
    • Understand the need for verification checks to be made on input data and the different types of verification check

Note and guidance

  • Including:
    • range check
    • length check
    • type check
    • presence check
    • format check
    • check digit
    • the purpose of each validation check and writing algorithms to implement each validation check
  • Including:
    • visual check
    • double entry check
  1. Suggest and apply suitable test data

Note and guidance

  • Limited to:
    • normal
    • abnormal
    • extreme
    • boundary
  • Extreme data is the largest/smallest acceptable value
  • Boundary data is the largest/smallest acceptable value and the corresponding smallest/largest rejected value
  1. Complete a trace table to document a dry-run of an algorithm

Note and guidance

  • Including, at each step in an algorithm:
    • variables
    • outputs
    • user prompts
  1. Identify errors in given algorithms and suggest ways of correcting these errors

Note and guidance

  • Asymmetric encryption includes the use of public and private keys
  1. Write and amend algorithms for given problems or scenarios, using: pseudocode, program code and flowcharts

Note and guidance

  • Precision is required when writing algorithms, e.g. x > y is acceptable but x is greater than y is not acceptable
  • pseudocode
  • flowcharts image.png